package com.xueyi.workflow.domain.entity;

import com.baomidou.mybatisplus.annotation.*;
import com.xueyi.common.core.web.entity.base.BaseEntity;
import com.fasterxml.jackson.annotation.JsonIgnore;
import lombok.Data;

import java.time.LocalDateTime;

/**
 * 流程任务对象 wf_process_task
 *
 * @author xueyi
 * @date 2024-07-03
 */
@Data
@TableName("wf_process_task")
public class WfProcessTask extends BaseEntity {

    private static final long serialVersionUID = 1L;

    /**
     * Flowable任务ID - 作为主键使用
     */
    private String taskId;

    /**
     * 流程实例ID
     */
    private String processInstanceId;

    /**
     * 流程定义ID
     */
    private Long processId;

    /**
     * 流程定义Key
     */
    private String processKey;

    /**
     * 流程名称
     */
    private String processName;

    /**
     * 任务名称
     */
    private String taskName;

    /**
     * 任务定义Key
     */
    private String taskDefinitionKey;

    /**
     * 节点ID
     */
    private String nodeId;

    /**
     * 节点名称
     */
    private String nodeName;

    /**
     * 任务类型：USER_TASK/SERVICE_TASK
     */
    private String taskType;

    /**
     * 任务状态：PENDING/CLAIMED/COMPLETED/DELEGATED/TRANSFERRED
     */
    private String status;

    /**
     * 任务描述
     */
    private String description;

    /**
     * 优先级
     */
    private Integer priority;

    /**
     * 到期时间
     */
    private LocalDateTime dueDate;

    /**
     * 创建时间
     */
    private LocalDateTime createTime;

    /**
     * 认领时间
     */
    private LocalDateTime claimTime;

    /**
     * 完成时间
     */
    private LocalDateTime completeTime;

    /**
     * 多租户ID
     */
    private Long tenantId;

    /**
     * 任务负责人
     */
    private String assignee;

    /**
     * 任务所有者
     */
    private String owner;
}
